#pragma once
#include <vector>

class VGFAsympExp
{
public:
	VGFAsympExp(double _mu, double lambda, double alpha, double beta, size_t nTerms);
	~VGFAsympExp(void);

	double LeftTail(double x) const;
	double RightTail(double x) const;

private:
	int _nTerms;
	double _mu, _lambda, _alpha, _beta, _gamma;
	double _const1;
	std::vector<double> _rightCoefficients;
	std::vector<double> _leftCoefficients;

	double a(unsigned int k, double v) const;
	double b(unsigned int k, double beta) const;
	double evaluate(double x, double beta, const std::vector<double>& coefficients) const;
};

